import request from '@/utils/request'
import { v4 as uuidv4 } from 'uuid'
import axios from "axios";

export function getStudys(params) {
  return request({
    url: 'api/eStudyData',
    method: 'get',
    params
  })
}

export function getStudysSuperior(pid) {
  return request({
    url: '/api/eStudyData?pid=' + pid,
    method: 'get'
  })
}

export function add(data) {
  return request({
    url: 'api/eStudyData',
    method: 'post',
    data
  })
}

export function del(ids) {
  console.log("ids:", ids)
  return request({
    url: 'api/eStudyData',
    method: 'delete',
    data: ids
  })
}

export function edit(data) {
  return request({
    url: 'api/eStudyData',
    method: 'put',
    data
  })
}

export function changeIntro(data) {
  return request({
    url: 'api/eStudyData/changeIntroduce',
    method: 'put',
    data
  })
}
export function getSign() {
  return request({
    url: '/api/common/uploadSign',
    method: 'get'
  })
}
// 文件类型（0：公司logo,1：公司营业执照，2：公司介绍图片，3：用户头像，4：简历）
export async function ossUpload(param) {
  // 建立一个formData对象，
  const formData = new FormData()
  // 添加文件对象
  // 文件名，重新写一个文件名
  const pathArr = param.file.name.split('.')
  // 获取文件名后缀
  let suffix = pathArr[pathArr.length - 1]
  if (!suffix) {
    console.log('上传失败，不支持改文件上传')
    return;
  }
  // 重新赋值文件名字
  suffix = '.' + suffix;
  const key = uuidv4() + '_' + new Date().getTime() + Math.floor(Math.random() * 100000) + suffix;
  // 这个包含文件，包含请求回来的信息，包含
  return new Promise((resolve, reject) => {
    getSign().then(res => {
      console.log(res, '文件上传')
      formData.append('key', res.data['dir'] + key)
      formData.append('name', key)
      formData.append('policy', res.data['policy'])
      formData.append('OSSAccessKeyId', res.data['accessid'])
      formData.append('signature', res.data['signature'])
      formData.append('success_action_status', '200')
      formData.append('file', param.file)
      axios.post(res.data['host'], formData)
        .then(response => {
          resolve(res.data['dir'] + key)
        })
        .catch(err => {
          reject(err)
        })
    })
  })
}

export default { add, edit, del, getStudys, getStudysSuperior, changeIntro,ossUpload}
